package com.maidada.codesharebackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.maidada.codesharebackend.common.PageResult;
import com.maidada.codesharebackend.model.dto.tag.TagAddRequest;
import com.maidada.codesharebackend.model.dto.tag.TagQueryRequest;
import com.maidada.codesharebackend.model.dto.tag.TagUpdateRequest;
import com.maidada.codesharebackend.model.entity.Tag;
import com.maidada.codesharebackend.model.vo.TagVO;

/**
 * 标签表 Service
 *
 * @author wulinxuan
 */
public interface TagService extends IService<Tag> {

    /**
     * 新增标签
     *
     * @param tagAddRequest 新增请求
     * @return 标签id
     */
    Long addTag(TagAddRequest tagAddRequest);

    /**
     * 删除标签
     *
     * @param id 标签id
     * @return 是否成功
     */
    Boolean deleteTag(Long id);

    /**
     * 修改标签
     *
     * @param tagUpdateRequest 修改请求
     * @return 是否成功
     */
    Boolean updateTag(TagUpdateRequest tagUpdateRequest);

    /**
     * 分页查询标签
     *
     * @param tagQueryRequest 查询请求
     * @return 分页结果
     */
    PageResult<TagVO> pageTag(TagQueryRequest tagQueryRequest);

    /**
     * 获取标签详情
     *
     * @param id 标签id
     * @return 标签信息
     */
    TagVO getTagById(Long id);
}

